package com.reliable.api.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 任务统计信息 DTO
 */
@Data
@ApiModel(value = "任务统计信息")
public class ReliableTaskStatDTO {
    
    /**
     * 任务ID
     */
    @ApiModelProperty(value = "任务ID")
    private Long taskId;
    
    /**
     * 任务加密id
     */
    @ApiModelProperty(value = "任务加密id")
    private String businessId;
    
    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    private String taskName;

    /**
     * 归属地
     */
    @ApiModelProperty(value = "归属地")
    private String location;

    /**
     * 任务描述
     */
    @ApiModelProperty(value = "任务描述")
    private String description;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 状态（完成、解析中、错误）
     */
    @ApiModelProperty(value = "状态（0:解析中, 1:完成, 2:错误）")
    private Integer status;

    /**
     * sessionsid数量
     */
    @ApiModelProperty(value = "sessionsid数量")
    private Long sessionCount;

    /**
     * entid数量
     */
    @ApiModelProperty(value = "entid数量")
    private Long entCount;

    /**
     * 网址数量
     */
    @ApiModelProperty(value = "网址数量")
    private Long urlCount;

    /**
     * 信息条数
     */
    @ApiModelProperty(value = "信息条数")
    private Long messageCount;

    /**
     * IP数量
     */
    @ApiModelProperty(value = "IP数量")
    private Long ipCount;

    /**
     * 访客IP数量
     */
    @ApiModelProperty(value = "访客IP数量")
    private Long visitorIpCount;

    /**
     * 来源页URL数量
     */
    @ApiModelProperty(value = "来源页URL数量")
    private Long referrerUrlCount;

    /**
     * 对话页URL数量
     */
    @ApiModelProperty(value = "对话页URL数量")
    private Long pageUrlCount;

    /**
     * 最早时间
     */
    @ApiModelProperty(value = "最早时间")
    private LocalDateTime earliestTime;

    /**
     * 最晚时间
     */
    @ApiModelProperty(value = "最晚时间")
    private LocalDateTime latestTime;

    // Getters and Setters
    
    public Long getTaskId() {
        return taskId;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }
    
    public String getBusinessId() {
        return businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }

    public String getTaskName() {
        return taskName;
    }

    public void setTaskName(String taskName) {
        this.taskName = taskName;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getSessionCount() {
        return sessionCount;
    }

    public void setSessionCount(Long sessionCount) {
        this.sessionCount = sessionCount;
    }

    public Long getEntCount() {
        return entCount;
    }

    public void setEntCount(Long entCount) {
        this.entCount = entCount;
    }

    public Long getUrlCount() {
        return urlCount;
    }

    public void setUrlCount(Long urlCount) {
        this.urlCount = urlCount;
    }

    public Long getMessageCount() {
        return messageCount;
    }

    public void setMessageCount(Long messageCount) {
        this.messageCount = messageCount;
    }

    public Long getIpCount() {
        return ipCount;
    }

    public void setIpCount(Long ipCount) {
        this.ipCount = ipCount;
    }

    public Long getVisitorIpCount() {
        return visitorIpCount;
    }

    public void setVisitorIpCount(Long visitorIpCount) {
        this.visitorIpCount = visitorIpCount;
    }

    public Long getReferrerUrlCount() {
        return referrerUrlCount;
    }

    public void setReferrerUrlCount(Long referrerUrlCount) {
        this.referrerUrlCount = referrerUrlCount;
    }

    public Long getPageUrlCount() {
        return pageUrlCount;
    }

    public void setPageUrlCount(Long pageUrlCount) {
        this.pageUrlCount = pageUrlCount;
    }

    public LocalDateTime getEarliestTime() {
        return earliestTime;
    }

    public void setEarliestTime(LocalDateTime earliestTime) {
        this.earliestTime = earliestTime;
    }

    public LocalDateTime getLatestTime() {
        return latestTime;
    }

    public void setLatestTime(LocalDateTime latestTime) {
        this.latestTime = latestTime;
    }
}